Many companies and other organizations operate computer networks that interconnect numerous computing systems to support their operations, such as with the computing systems being co-located (e.g., as part of a local network) or instead located in multiple distinct geographical locations (e.g., connected via one or more private or public intermediate networks). For example, data centers housing significant numbers of interconnected computing systems have become commonplace, such as private data centers that are operated by and on behalf of a single organization, and public data centers that are operated by entities as businesses to provide computing resources to customers. Some public data center operators provide “full service” facilities that include hardware and software resources made available for use by their customers.
The advent of virtualization technologies for commodity hardware has provided benefits with respect to managing large-scale computing resources for many customers with diverse needs, allowing various computing resources to be efficiently and securely shared by multiple customers. For example, virtualization technologies may allow a single physical computing machine (e.g., a server) to be shared among multiple users by providing each user with one or more virtual machines hosted by the single physical computing machine, with each such virtual machine being a software simulation acting as a distinct logical computing system that provides users with the illusion that they are the sole operators and administrators of a given hardware computing resource, while also providing application isolation and security among the various virtual machines. Furthermore, some virtualization technologies are capable of providing virtual resources that span two or more physical resources, such as a single virtual machine with multiple virtual processors that spans multiple distinct physical computing systems. As another example, virtualization technologies may allow data storage hardware to be shared among multiple users by providing each user with a virtualized data store which may be distributed across multiple data storage devices, with each such virtualized data store acting as a distinct logical data store that provides users with the illusion that they are the sole operators and administrators of the data storage resource.
Some services offered by service providers are provided on serverless architectures. A stateless service is a service that does not maintain the state of a transaction after completion of the transaction. In some examples, all input parameters needed by a stateless service are contained in the input packet to the service to initiate an operation. Once the operation is complete, no data, metadata, etc. is stored by the service related to the completed operation. An architecture in which such services execute may be referred to as a “server-less architecture.”
An advantage of a server-less architecture is that it obviates the need for managing virtual machines and software stacks. Unfortunately, having a service provider host an application without requiring management of virtual machines and software stacks also makes it difficult by the application developer to debug and diagnose problems with an application.